﻿package main {
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.TextField; 
	import main.*;
	import flash.utils.Timer;
    import flash.events.TimerEvent;
	import flash.net.*;
	import flash.display.Graphics;
	import flash.events.*;
	
	dynamic public class sky extends MovieClip {
		
		
	   var mus :ton;   //music
		 
	   var proc  : Number=50;	
	   var procp : Number;
       var maxobj: Number=6;
       var maxship : Number=0;
	   var mas : Array;
	   var masship : Array;
	   var txtsky  : TextField;  // procenti
	   var txtchat  : TextField;  // chat
	   var n:int=10;
	  // var unum=2 ;
	   var colors :Array;
	   var init : int=0;
	    var i : Number;
       var objkt : obj;
	
	var timeQuant:uint=300;
var myTimer:Timer = new Timer(timeQuant);
var timeint:Number=0;
	   
var log_usr:String; 	// логин
var pas_usr:String;		// пароль
var id_usr:int;			// код пользователя
var vhod_var:URLVariables = new URLVariables(); //хранилище переменных для передачи в скрипт
var vhod_req:URLRequest = new URLRequest(GLOB.path_url);

var vhod_ldr:URLLoader = new URLLoader();

var words:Array = new Array; // массив для хранения разбитых строк
var err_win:msg_win = new msg_win;	// окно вывода ошибок
var tarship : ship;	  

 function sendurl(l,p : String ):void
{  
    log_usr=l;	
	pas_usr=p ;
	vhod_ldr.addEventListener(Event.COMPLETE, completeHandler, false, 0, true); 	// обработчик загрузки данных из скрипта
	vhod_var.log_usr = log_usr;		//загрузка переменных
	vhod_var.pas_usr = pas_usr;
	vhod_req.data = vhod_var;
	vhod_ldr.dataFormat = URLLoaderDataFormat.TEXT;		// определяем формат получения данных
	try { 
		vhod_ldr.load(vhod_req); 	// передаем переменные в скрипт и получаем результат
	} 
	catch (err:Error) { 
	} 
}

function completeHandler(e:Event):void { //обработка результатов от скрипта
	vhod_ldr.removeEventListener(Event.COMPLETE, completeHandler);
	id_usr = int(Number(e.target.data));	//записываем результат как номер пользователя (число больше 0) или код ошибки (- число)
	
	
	words = (e.target.data).split(" ");
	txtchat.text=e.target.data;
	trace ('word= '+words);
	// trace('unum=',GLOB.PL);
	var  num_planet :Number ;
	if (init==0) {
		trace('init=',init);
	    var  i:Number =0;
		maxobj=words[3];
		//unum= words[4];
	//	GLOB.PL=unum;
		var  j:Number =5;
		
		
		while (i <=maxobj) 
		{
		   objkt = new obj();
		   objkt.num=i;
		   objkt.power=10+i*10; ///pow
		    objkt.Rad=20;
 	       objkt.player=i;
		   objkt.sila=i*0.5+0.5;
		   objkt.col=colors[objkt.player] ;
	
		   addChild (objkt);
		   
		   num_planet=words[j];
		   mas[ num_planet]=objkt;
		 //  mas.push(objkt);
		   
		   mas[ num_planet].num=words[j];j++;
		   mas[ num_planet].sila=words[j];j++;
		   mas[ num_planet].Rad=words[j];
		  // mas[ num_planet].scaleX=0.3+ words[j]*0.01;
		//   mas[ num_planet].scaleY=0.3+  words[j]*0.01;
		
		    j++;
		   mas[ num_planet].player=words[j];j++;
		   mas[ num_planet].x=words[j];j++;
		   mas[ num_planet].y=words[j];j++;
		   mas[ num_planet].power=words[j];j++;
		   trace( 'i=',i,' mas[ i].power ',mas[ num_planet].power  );
		   mas[ num_planet].col =colors[mas[ num_planet].player] ;
		   mas[num_planet].ris();	
		   
		   i++; 
		}
	
	}
	
	var  num_ship :Number ;
	init++;
	if (init>1) {
		i =0;
		j =0;
	    var  zj:Number =0;
 	    var  Rcolor:Number =0;
 	    var  end_game :int ;
		end_game=words[j];j++;
	   if (end_game==1) { 
	   myTimer.stop(); 
	   GLOB.vin=1;}
	
		while (i<=maxobj)
		{
		num_planet=words[j];j++;
		mas[ num_planet].player=words[j];j++;
		mas[ num_planet].power=words[j];j++;
		Rcolor=mas[ num_planet].col;
	    mas[ num_planet].col =colors[mas[ num_planet].player] ;
		if (Rcolor!=mas[num_planet].col) { mas[num_planet].ris() };	 
		mas[num_planet].txt.text=""+mas[ num_planet].power;
		 
		i++; }
		
		 i =0;
	    var  u:Number =0;
	    zj=j;
		j++;
		
	//	tarship = new ship ();
     //   addChild(tarship);
		
	//	for (var id in masship){trace( 'key ',id,' masship  ',masship[id].num); }
	
		//trace(words[zj]+'as');
	while ( i<words[zj]) 
{		
      
      num_ship=words[j];j++;
//	  trace ('num_ship ',num_ship,' !!masship ',!!masship[num_ship] );
	  if  (!masship[num_ship])
	 { 
	   tarship = new ship ();
	   tarship.x=100;
	   tarship.y=100;
	   tarship.xk=200;
	   ///   vnimatelno jjjjj go na color
	   tarship.col=colors[words[j+5]] ;
	   tarship.ris();
	   tarship.num=num_ship;
	   
       addChild(tarship);
	    masship[num_ship]=tarship; 
	    masship[ num_ship].num=num_ship;
		masship[ num_ship].dest=words[j];j++;
	    masship[ num_ship].x=words[j];j++;
		masship[ num_ship].y=words[j];j++;
		masship[ num_ship].xk=words[j];j++;
		masship[ num_ship].yk=words[j];j++;
		masship[ num_ship].player=words[j];j++;
	    masship[ num_ship].col=colors[masship[ num_ship].player] ;
	   // masship[ num_ship].col=0x00DF10;
		masship[ num_ship].power=words[j];j++;
		masship[ num_ship].ris();
		i++;
	 }
	 else {
		 masship[ num_ship].num=num_ship;
		masship[ num_ship].dest=words[j];j++;
	    masship[ num_ship].x=words[j];j++;
		masship[ num_ship].y=words[j];j++;
		masship[ num_ship].xk=words[j];j++;
		masship[ num_ship].yk=words[j];j++;
		masship[ num_ship].player=words[j];j++;
		masship[ num_ship].col=colors[masship[ num_ship].player] ;
		//masship[ num_ship].col=0x00DF10;
		masship[ num_ship].power=words[j];j++;
		masship[ num_ship].ris();
		i++;
		}
		
		
}
	}
	
}
	 
public function sky ()
	   {    	   
myTimer.addEventListener(TimerEvent.TIMER, TimerElapsed);
myTimer.start();

masship= new Array();    //// masiv  mas ship
 

//myTimer.stop();

function TimerElapsed(event:TimerEvent):void
{
	timeint++;
	sendurl("planet",GLOB.curent_map);
}
		
	   
	   vhod_req.method = URLRequestMethod.POST;	
	   
	   // GLOB.PL=unum; 
		colors= new Array();
		colors[0]=0xFF0000;
		colors[1]=0x00FF00;
		colors[2]=0x0000FF;
		colors[3]=0xFFFF00;
		colors[4]=0xFF00FF;
		colors[5]=0x00FFFF;
		colors[6]=0xFFFFFF;
		colors[7]=0xFF9000;		
		colors[8]=0x00FF00;
		colors[9]=0x0090FF;
		colors[10]=0xFFFF90;
		colors[11]=0xFF90FF;
		colors[12]=0x90FFFF;
		colors[13]=0xFF9FFF;
		colors[14]=0xFF9F9F;
   		colors[15]=0x9F9FFF;
		colors[16]=0x909090;
        colors[-1]=0x90F0F0;
		
	   addEventListener (MouseEvent.MOUSE_DOWN,skydown);
	   addEventListener (MouseEvent.MOUSE_UP,skyup);
	   addEventListener (MouseEvent.MOUSE_WHEEL,skymidlup)
	   addEventListener(Event.ENTER_FRAME, onFrame);
	
	
	    var tpole : pole;
		tpole = new pole();
	    tpole.x=0;
		tpole.y=0;
		addChild (tpole);
		
		txtsky= new TextField();  //  procent
	   txtsky.x=10;
	   txtsky.y=10;  
	   txtsky.textColor=0xFFFFFF;
	   txtsky.text=proc+" %";
	   txtsky.selectable=false;
	   addChild (txtsky);
	  
	   txtchat= new TextField();  //  chat
	   txtchat.x=100;
	   txtchat.y=10;  
	   txtchat.textColor=0xFFFFFF;
	   txtchat.text='d';
	   txtchat.selectable=false;
	   addChild (txtchat);
	   
	    mas = new Array();
		//select_map='a';
		// GLOB.curent_map=123;
		trace(GLOB.curent_map,'Gl');
	    sendurl("init", GLOB.curent_map);    // inicialization  po complit handler
		skydown(void);
	
		
		function skydown(etc : Event):void
		{
		  //  trace("skydown Gl1= "+ GLOB.GL1);
         for (var key:String in mas){
	         // trace("array[" + key + "] = "+ mas[key].num);
			  if (GLOB.GL1!=mas[key].num) {  mas[key].otm(); }
               }
			 
		}
		
		function skyup(etc: MouseEvent):void   // otpusc mishki
		{
			///trace('uuup');
		   //   trace ('tyGLOB.GL1= ',GLOB.GL1);
			 //  trace(' tyGLOB.GL2= ',GLOB.GL2); 
			//   trace(' mas[GLOB.GL1].power*proc/100  ',mas[GLOB.GL1].power*proc/100 );
			if ( (GLOB.GL1!=123022)&&(GLOB.GL2!=123022)&&(GLOB.GL2!=GLOB.GL1)&& 
			(Math.ceil(mas[GLOB.GL1].power*proc/100 )>0))
			{
			var tarshippower : Number;
			var tarshipdest: Number;
			var tarshipfrom: Number;
			
			
		log_usr='ships';	
		pas_usr=GLOB.curent_map ;
		
		tarshippower =proc/100  ;
		trace('tarshippower',tarshippower);
		tarshipdest=GLOB.GL2;
		tarshipfrom=GLOB.GL1;
		  
		vhod_ldr.addEventListener(Event.COMPLETE, completeHandler, false, 0, true); 	// обработчик загрузки данных из скрипта
		vhod_var.log_usr = log_usr;		//загрузка переменных
		vhod_var.pas_usr = pas_usr;
		
		vhod_var.tarshippower=tarshippower;
		vhod_var.tarshipdest=tarshipdest;
		vhod_var.tarshipfrom=tarshipfrom;
		
		vhod_req.data = vhod_var;
		vhod_ldr.dataFormat = URLLoaderDataFormat.TEXT;		// определяем формат получения данных
		
	   try { 
		vhod_ldr.load(vhod_req); 	// передаем переменные в скрипт и получаем результат
	} 
	catch (err:Error) { 
	}
			}}
	
		function skymidlup(event: MouseEvent):void //   колесико
		{
			proc+=event.delta;
			if (proc<0) { proc=0;}
			if (proc>100) { proc=100;}
	        txtsky.text=proc+" %";
		 }   //   колесико
		
		
		 function onFrame(event:Event) { 
		//var key:int;   for (key=0;key<maxship+2;key++) {
				   
				    for (var id in masship){
	   
				     if ( masship[id].vz<18 + mas[masship[id].dest].Rad)
				         { 
						 trace('removeChild',id );
	mus = new ton();
    mus.play();
	removeChild(masship[id]);
	delete masship[id]; 
						 }   
					  else 
					  {  
					//  trace('move',id );
			          masship[id].movs(); 
					//  masship[i].x=1+masship[i].x;  
					  }
					  
		       } ///cikl ships
			   
			   for (i=0;i<=maxobj;i++)
			   {
				// mas[i].power+=mas[i].sila;
				// mas[i].txt.text=""+mas[i].power;
			   }
			   
			   
         } // on frame
	   
	   }  //public function
	
	}
	
	
}